Digital media data, such as still images and audio and video (which is a sequence of images), are commonly encoded into bitstreams that are transmitted or stored in data files. An encoded bitstream typically conforms to an established standard, such as SMPTE VC-1, H.264/AVC and HEVC/H.265. Many such standards, particularly those used for distribution of video data, such as in connection with video streaming services over computer networks, include a form of data compression called motion compensation. Motion compensation is one type of compression technique that reduces interframe redundancies in a sequence of images. Generally speaking, interframe redundancies in a sequence of images are reduced by defining groups of images in the sequence, which each group having one or more reference images to which the remaining images in the group are compared. Comparison results are computed and encoded to reduce the amount of information stored to encode the group of images.
In many implementations of streaming video data, the encoded bitstream can be delivered at multiple bit rates. For example, the same content can be encoded at different bitrates and stored on a storage device. A bit rate at which the bitstream is encoded can be selected dynamically at the time of transmission of the encoded bitstream over a network. This selection can be based on measured or estimated available bandwidth or transmission performance of the network and/or characteristics of a display device. A change in bit rate of the encoded bitstream also can result from a change in encoding factors, such as format, including but not limited to spatial or temporal resolution or display format (e.g., interlaced or progressive) of the input video data to be encoded or of the output video data when decoded, or such as encoding parameters, including but not limited to a profile, level, quantization parameters or number of references. When decoding, such encoding factors result in corresponding decoding factors.